package homework.day02;

import java.util.Scanner;

/**
 * 程序需求:
 * 程序启动后，实例化一个Person，然后要求用户输入用户名
 * 和年龄.并加以验证:
 * 名字至少一个字符，否则输出:姓名不能为空!
 * 年龄必须是0-100之间的数字，否则输出:年龄不合法!
 * 
 * 都输入正确时最后输出该用户信息
 * 
 * 将下面写好的代码解除注释改正里面的错误使得程序可以正常
 * 运行。
 * 异常记一记:
 * 下面会出现的每一种异常先翻译异常的名字，然后解决该异常后
 * 思考是什么原因引起的错误并在注释中标注出来
 *
 * @author Xiloer
 *
 */
public class Test05 {


	public static void main(String[] args) {
		Person p = new Person();
//		没有导入Scanner包         关键字打错了
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入姓名:");
		String name = scanner.nextLine();
		// 设置姓名要放在if判断名字是否为空前面
		p.setName(name);
		if(p.getName().length()==0) {
			System.out.println("姓名不能为空!");
		}else{
			//输入年龄部分应该放入if判断名字不为空的前提下
			System.out.println("请输入年龄:");
			int age = scanner.nextInt();
			//年龄应该放在判断年龄是否合法的if前面
			//Person类中的属性age被私有化了，所以需要通过set方法设置
			p.setAge(age);
			//&&是短路与，只要第一个错就会跳过判断，不符合年龄必须是0-100之间的数字的条件，要用短路或
			if(p.getAge()<0 || p.getAge()>100) {
				System.out.println("年龄不合法!");
			}else{
				//输出该用户信息应该在if判断名字和年龄都输入正确前提下
				//Person类中的属性name和age被私有化了，所以需要通过get方法获取
				System.out.println("姓名:"+p.getName());
				System.out.println("年龄:"+p.getAge());
			}
		}
	}


	}

	class Person {
		private String name;
		private int age;


		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public int getAge() {
			return age;
		}

		public void setAge(int age) {
			this.age = age;
		}
	}
	// 多打了一个}
